home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Arsenal Files 8
/
The Arsenal Files Collection #8 (Arsenal Computer) (1996).ISO
/
pcboard
/
sugst302.zip
/
SUGGEST.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1996-09-27
|
19KB
|
894 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 3.2O (Encryption type I) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN001
Boolean BOOLEAN002
Boolean BOOLEAN003
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
Integer INTEGER006
Integer INTEGER007
Integer TINTEGER008(1)
Integer INTEGER009
Integer INTEGER010
Integer INTEGER011
Integer INTEGER012
Integer INTEGER013
Integer INTEGER014
Integer INTEGER015
Integer INTEGER016
Integer INTEGER017
Integer TINTEGER018(99)
String STRING001
String STRING002
String STRING003
String STRING004
String STRING005
String STRING006
String TSTRING007(1)
String STRING008
String STRING009
String STRING010
String STRING011
String STRING012
String STRING013
String TSTRING014(1)
String STRING015
String STRING016
String STRING017
String STRING018
String STRING019
String STRING020
String STRING021
String STRING022
String STRING023
String TSTRING024(3)
String STRING025
String STRING026
String STRING027
String STRING028
String STRING029
String STRING030
String STRING031
String STRING032
String STRING033
String STRING034
String STRING035
String TSTRING036(21)
String STRING037
String TSTRING038(1)
String STRING039
String STRING040
String STRING041
String STRING042
String STRING043
String STRING044
String STRING045
String STRING046
String STRING047
String STRING048
String STRING049
String STRING050
String STRING051
String STRING052
String STRING053
String STRING054
String STRING055
String STRING056
String STRING057
String STRING058
String STRING059
String STRING060
String STRING061
Declare Procedure PROC001()
Declare Procedure PROC002()
;------------------------------------------------------------------------------
GetUser
FOpen 6, PPEPath() + PPEName() + ".Sec", 0, 0
:LABEL001
If (Ferr(6)) Goto LABEL002
FGet 6, STRING021
If (STRING021 == CurSec()) Then
Newlines 2
PrintLn "@X10┌─────────────────────────────────────────────────────────────────────────────@X19┐@X0F"
PrintLn "@X10│ @X1E░▒▓█ @X1BWe are sorry, but the suggestion door is only for subscriber use.@X1E █▓▒░ @X19│@X0F"
PrintLn "@X10└@X19─────────────────────────────────────────────────────────────────────────────┘@X0F"
Newlines 1
Delay (5 * 182) / 10
Else
Goto LABEL001
:LABEL002
FClose 6
GetToken STRING055
GetUser
If (Exist(PPEPath() + "door.lck")) Goto LABEL003
FOpen 1, PPEPath() + "door.lck", 2, 0
FPutLn 1, "Door In Use By " + Mixed(U_Name()) + " - Security Lock Enabled!"
FClose 1
Goto LABEL004
Goto LABEL004
:LABEL003
INTEGER012 = PcbNode()
FAppend 1, PPEPath() + "Waiting.Lst", 2, 0
FPutLn 1, INTEGER012
FClose 1
Newlines 1
PrintLn "@X04█@X4E· @X0A Sorry but another user is in the Suggestion Box, try again in a minute @X04█@X4E·@X04█@X0F"
End
:LABEL004
If (Exist(PPEPath() + "UNIVERSL.KEY")) Then
PROC001()
ElseIf (Exist(PPEPath() + "UNI.KEY")) Then
PROC002()
Else
If (Exist(PPEPath() + PPEName() + ".key")) Goto LABEL005
BOOLEAN003 = 0
Goto LABEL006
:LABEL005
FOpen 2, PPEPath() + PPEName() + ".key", 0, 0
FGet 2, STRING050
FGet 2, STRING051
FGet 2, STRING052
FClose 2
STRING053 = Mid(STRING050, 2, 1)
STRING054 = Mid(STRING051, 5, 1)
STRING053 = Abs(Asc(STRING053) + 77 - 100)
STRING054 = Abs(Asc(STRING054) + 77 - 100)
If ((Mid(STRING052, 1, 2) == STRING053) && (Mid(STRING052, 79, 2) == STRING054)) Then
BOOLEAN003 = 1
Else
BOOLEAN003 = 0
Endif
Endif
:LABEL006
If (BOOLEAN003 == 1) Then
Cls
PrintLn "@X1C░▒▓█ @X1EThe Suggestion Box! v3.02 @X1C█▓▒░ @X1F(c)1996 Practical Computer Services@X0F"
Delay (1 * 182) / 10
Else
Cls
For INTEGER003 = 1 To 10
PrintLn "@X0EThis is @X8CUNREGISTERED @X0Esoftware - Please encourage your sysop to register it!@X0F"
PrintLn " @X0APractical Computer Services Suggestion Box@X0F"
Delay (1 * 182) / 10
If (INTEGER003 == 10) Delay 2 * 182 / 10
Next
Endif
BOOLEAN002 = 1
If (Upper(STRING055) == "QUIK") BOOLEAN002 = 0
STRING010 = "■"
INTEGER007 = 15
RdUNet PcbNode()
WrUNet PcbNode(), UN_Stat(), UN_Name(), "Running " + PPEName(), "", ""
If (Exist(PPEPath() + PPEName() + ".Nam")) Goto LABEL007
FCreate 7, PPEPath() + PPEName() + ".nam", 2, 0
FClose 7
:LABEL007
STRING001 = ReadLine(PPEPath() + "header", 1)
STRING002 = ReadLine(PPEPath() + "header", 2)
STRING003 = ReadLine(PPEPath() + "header", 3)
Log "Suggestion Box! - Access", 0
If (Exist(PPEPath() + PPEName() + ".Cfg")) Goto LABEL008
FCreate 7, PPEPath() + PPEName() + ".Cfg", 2, 0
FPutLn 7, "0"
FPutLn 7, "YES"
FClose 7
Cls
PrintLn "@X0E You are the first user! Please give us your suggestion below.@X0F"
Newlines 1
Gosub LABEL010
:LABEL008
INTEGER006 = ReadLine(PPEPath() + PPEName() + ".cfg", 1)
STRING056 = ReadLine(PPEPath() + PPEName() + ".CFG", 2)
Redim TSTRING007, INTEGER006
Redim TSTRING014, INTEGER006
Redim TINTEGER008, INTEGER006
Redim TSTRING038, INTEGER006
INTEGER004 = 1
INTEGER005 = INTEGER006
If (Upper(STRING056) == "YES") Then
BOOLEAN001 = 1
Else
BOOLEAN001 = 0
Endif
If (BOOLEAN002) Goto LABEL018
BOOLEAN002 = 0
:LABEL009
FCloseAll
FOpen 1, PPEPath() + PPEName() + ".DAT", 0, 0
Gosub LABEL016
If (BOOLEAN001) Then
PrintLn " @X0EYea @X0CNey@X0F"
Else
Newline
Endif
For INTEGER003 = INTEGER004 To INTEGER005
FGet 1, STRING009
STRING025 = Left(STRING009, 5)
STRING025 = LTrim(STRING025, "0")
If (Len(STRING025) == 0) STRING025 = 0
STRING026 = Mid(STRING009, 7, 5)
STRING026 = LTrim(STRING026, "0")
If (Len(STRING026) == 0) STRING026 = 0
STRING015 = Mid(STRING009, 13, 6)
STRING042 = Mid(STRING009, 20, 1)
STRING004 = Mid(STRING009, 22, 74)
STRING004 = Upper(Left(STRING004, 1)) + Mid(STRING004, 2, 73)
If (STRING042 == "Y") Then
STRING044 = "@X8D@X0B"
Else
STRING044 = " "
Endif
If (BOOLEAN001 == 0) Then
If ((INTEGER003 > 0) && (INTEGER003 < 10)) PrintLn " @X0E ", INTEGER003, "@X0A)@X0B", STRING044, STRING004
If ((INTEGER003 >= 10) && (INTEGER003 < 100)) PrintLn "@X0E ", INTEGER003, "@X0A)@X0B", STRING044, STRING004
If ((INTEGER003 >= 100) && (INTEGER003 < 1000)) PrintLn "@X0E", INTEGER003, "@X0A)@X0B", STRING044, STRING004
Else
If ((INTEGER003 > 0) && (INTEGER003 < 10)) PrintLn " @X0E ", INTEGER003, "@X0A)@X0B", STRING044, Left(STRING004, 64) , "@X09@POS:66@ ", STRING025, "@POS:76@", STRING026
If ((INTEGER003 >= 10) && (INTEGER003 < 100)) PrintLn "@X0E ", INTEGER003, "@X0A)@X0B", STRING044, Left(STRING004, 64) , "@X09@POS:66@ ", STRING025, "@POS:76@", STRING026
If ((INTEGER003 >= 100) && (INTEGER003 < 1000)) PrintLn "@X0E", INTEGER003, "@X0A)@X0B", STRING044, Left(STRING004, 64) , "@X09@POS:66@ ", STRING025, "@POS:76@", STRING026
Endif
If (INTEGER003 >= INTEGER007) Then
Gosub LABEL015
Gosub LABEL016
Endif
Next
FClose 1
PrintLn "@X03───────────────────────────────────────────────────────────────────────────────@X0F"
If (CurSec() >= SysopSec()) PrintLn " @X03Sysop only commands - @X0A(@X0ED@X0A)@X03elete a Suggestion / @X0A(@X0EE@X0A)@X03dit the notes file"
InputStr " @X0B@X0A(@X0EV@X0A)@X0Bote / @X0A(@X0EA@X0A)@X0Bdd your own / @X0A(@X0EH@X0A)@X0Belp / @X0A(@X0ET@X0A)@X0Boggle / @X0A(@X0EN@X0A)@X0Botes @X8D@X0F @X0B/ @X0A(@X0CQ@X0A)@X0Cuit to BBS _", STRING005, 15, 1, "VAHQTBNDE", 0 + 8
If ((STRING005 == "T") && (BOOLEAN001 == 0)) Then
BOOLEAN001 = 1
INTEGER007 = 15
Goto LABEL009
ElseIf ((STRING005 == "T") && (BOOLEAN001 == 1)) Then
BOOLEAN001 = 0
INTEGER007 = 15
Goto LABEL009
Endif
If (STRING005 == "V") Goto LABEL011
If (STRING005 == "A") Goto LABEL010
If (STRING005 == "H") Goto LABEL018
If ((STRING005 == "D") && (CurSec() >= SysopSec())) Goto LABEL019
If (STRING005 == "B") Goto LABEL026
If (STRING005 == "N") Goto LABEL027
If ((STRING005 == "E") && (CurSec() >= SysopSec())) Goto LABEL028
Select Case (STRING005)
Case "Q"
Gosub LABEL017
Cls
INTEGER007 = 15
Goto LABEL009
If (STRING005 == "") Then
INTEGER007 = 15
Goto LABEL009
Endif
:LABEL010
If ((INTEGER005 >= 5) && !BOOLEAN003) Then
Backup 80
ClrEol
PrintLn " @X0C Sorry but this is an @X8Cunregistered@X0C version, no more additions allowed!"
PrintLn "@X0C Please have your sysop register the suggestion box to remove all limitations@X0F"
Delay (4 * 182) / 10
INTEGER007 = 15
BOOLEAN002 = 0
Goto LABEL008
Endif
STRING008 = ""
STRING016 = ""
Backup 80
ClrEol
PrintLn " @X0E┌──@X0BPlease enter a one line description of your suggestion @X0A(@X0C74 chars max@X0A)@X0E─┐"
InputStr " _", STRING008, 3, 74, Mask_Ascii(), 0
If (Len(STRING008) == 0) Then
INTEGER007 = 15
Goto LABEL009
Endif
If (Upper(STRING008) == "Q") Then
INTEGER007 = 15
Goto LABEL009
Endif
STRING016 = Random(999999)
STRING016 = STRING016 + "000000"
STRING016 = Left(STRING016, 6)
STRING008 = Strip(STRING008, ";")
STRING008 = "00001" + STRING010 + "00000" + STRING010 + STRING016 + STRING010 + "N" + STRING010 + STRING008
INTEGER006 = INTEGER006 + 1
INTEGER005 = INTEGER006
FOpen 2, PPEPath() + PPEName() + ".Cfg", 2, 0
FPutLn 2, INTEGER005
FClose 2
FOpen 5, PPEPath() + PPEName() + ".DAT", 0, 0
For INTEGER003 = 1 To INTEGER005
FGet 5, TSTRING038(INTEGER003)
Next
FClose 5
FCloseAll
FCreate 5, PPEPath() + PPEName() + ".DAT", 2, 0
For INTEGER003 = 1 To INTEGER005 - 1
FPutLn 5, TSTRING038(INTEGER003)
Next
FPutLn 5, STRING008
FClose 5
FAppend 4, PPEPath() + PPEName() + ".nam", 2, 0
FPutLn 4, STRING016 + ";" + Strip(U_Name(), " ")
FClose 4
INTEGER007 = 15
BOOLEAN002 = 0
FCloseAll
Goto LABEL008
:LABEL011
Backup 80
ClrEol
InputStr "@X0BPlease enter the suggestion number to vote on @X0A(@X0CQ@X0A)@X0Cuit _", STRING006, 15, 3, "0123456789", 0
If (STRING006 == "") Then
INTEGER007 = 15
Goto LABEL009
Endif
If (Upper(STRING006) == "Q") Goto LABEL009
If ((STRING006 == 0) || (STRING006 > INTEGER006)) Goto LABEL009
STRING022 = ReadLine(PPEPath() + PPEName() + ".DAT", STRING006)
STRING022 = Mid(STRING022, 13, 6)
FOpen 2, PPEPath() + PPEName() + ".Nam", 0, 0
:LABEL012
If (Ferr(2)) Goto LABEL013
FGet 2, STRING013
Tokenize STRING013
GetToken STRING012
GetToken STRING011
If ((STRING011 == Strip(U_Name(), " ")) && (STRING012 == STRING022)) Then
Backup 80
ClrEol
PrintLn " @X04████ @X0ASorry but you already voted on that suggestion! @X04████@X0F"
FClose 2
Delay (4 * 182) / 10
INTEGER007 = 15
Goto LABEL009
Endif
Goto LABEL012
:LABEL013
FClose 2
Backup 80
ClrEol
Print "@X0BWould you like to vote @X0A(@X0EF@X0A)@X0Bor or @X0A(@X0EA@X0A)@X0Bgainst #@X0C ", STRING006, "@X0F "
InputStr "_", STRING027, 14, 1, "FA", 0 + 8
If (STRING027 == "A") Goto LABEL014
Backup 80
ClrEol
PrintLn " @X04████ @X0BYour vote has been noted for # @X0E", STRING006, "@X0B thank you for voting! @X04████@X0F"
FAppend 3, PPEPath() + PPEName() + ".nam", 2, 0
FPutLn 3, STRING022 + ";" + Strip(U_Name(), " ")
FClose 3
FOpen 4, PPEPath() + PPEName() + ".DAT", 0, 0
For INTEGER002 = INTEGER004 To INTEGER005
FGet 4, TSTRING007(INTEGER002)
Next
FClose 4
STRING049 = Left(TSTRING007(STRING006), 5)
STRING048 = Mid(TSTRING007(STRING006), 7, 5)
STRING017 = Mid(TSTRING007(STRING006), 13, 6)
STRING043 = Mid(TSTRING007(STRING006), 20, 1)
STRING018 = Mid(TSTRING007(STRING006), 22, 74)
STRING049 = STRING049 + 1
STRING049 = "0000" + STRING049
STRING049 = Right(STRING049, 5)
TSTRING007(STRING006) = STRING049 + STRING010 + STRING048 + STRING010 + STRING017 + STRING010 + STRING043 + STRING010 + STRING018
FOpen 5, PPEPath() + PPEName() + ".DAT", 2, 0
For INTEGER002 = INTEGER004 To INTEGER005
FPutLn 5, TSTRING007(INTEGER002)
Next
FClose 5
INTEGER007 = 15
Delay (2 * 182) / 10
BOOLEAN002 = 0
FCloseAll
Goto LABEL008
:LABEL014
Backup 80
ClrEol
PrintLn " @X04████ @X0BYour vote has been noted against # @X0E", STRING006, "@X0B thank you for voting! @X04████@X0F"
FAppend 3, PPEPath() + PPEName() + ".NAM", 2, 0
FPutLn 3, STRING022 + ";" + Strip(U_Name(), " ")
FClose 3
FOpen 2, PPEPath() + PPEName() + ".DAT", 0, 0
For INTEGER002 = INTEGER004 To INTEGER005
FGet 2, TSTRING007(INTEGER002)
Next
FClose 2
STRING028 = Left(TSTRING007(STRING006), 5)
STRING029 = Mid(TSTRING007(STRING006), 7, 5)
STRING017 = Mid(TSTRING007(STRING006), 13, 6)
STRING043 = Mid(TSTRING007(STRING006), 20, 1)
STRING018 = Mid(TSTRING007(STRING006), 22, 74)
STRING028 = STRING028
STRING029 = STRING029 + 1
STRING029 = "0000" + STRING029
STRING029 = Right(STRING029, 5)
TSTRING007(STRING006) = STRING028 + STRING010 + STRING029 + STRING010 + STRING017 + STRING010 + STRING043 + STRING010 + STRING018
FOpen 2, PPEPath() + PPEName() + ".DAT", 2, 0
For INTEGER002 = INTEGER004 To INTEGER005
FPutLn 2, TSTRING007(INTEGER002)
Next
FClose 2
INTEGER007 = 15
Delay (2 * 182) / 10
BOOLEAN002 = 0
FCloseAll
Goto LABEL008
:LABEL015
PrintLn "@X03─────────────────────────────────────────────────────────────────────────────@X0F"
If (CurSec() >= SysopSec()) PrintLn "@X03 Sysop only commands - @X0A(@X0ED@X0A)@X03elete a Suggestion / @X0A(@X0EE@X0A)@X03dit the notes file"
InputStr "@X0B@X0A(@X0EV@X0A)@X0Bote / @X0A(@X0EA@X0A)@X0Bdd your own / @X0A(@X0EH@X0A)@X0Belp / @X0A(@X0EM@X0A)@X0Bore / @X0A(@X0ET@X0A)@X0Boggle / @X0A(@X0EN@X0A)@X0Botes @X8D@X0B / @X0A(@X0CQ@X0A)@X0Cuit _", STRING005, 15, 1, "TVAMHQNBDE", 0 + 8
INTEGER007 = INTEGER007 + 15
If ((STRING005 == "T") && (BOOLEAN001 == 0)) Then
BOOLEAN001 = 1
INTEGER007 = 15
Goto LABEL009
ElseIf ((STRING005 == "T") && (BOOLEAN001 == 1)) Then
BOOLEAN001 = 0
INTEGER007 = 15
Goto LABEL009
Endif
If (STRING005 == "M") Return
If (STRING005 == "V") Goto LABEL011
If (STRING005 == "A") Goto LABEL010
If (STRING005 == "H") Goto LABEL018
If ((STRING005 == "D") && (CurSec() >= SysopSec())) Goto LABEL019
If ((STRING005 == "E") && (CurSec() >= SysopSec())) Goto LABEL028
If (STRING005 == "B") Goto LABEL026
If (STRING005 == "N") Goto LABEL027
Case "Q"
Gosub LABEL017
Cls
Case Else
Return
:LABEL016
Cls
PrintLn STRING001
PrintLn STRING002
PrintLn STRING003
Return
:LABEL017
Backup 80
ClrEol
PrintLn " @X84████ @X0AOne moment please, sorting data.... @X84 ████ @X0F"
FOpen 5, PPEPath() + PPEName() + ".DAT", 0, 0
For INTEGER001 = 0 To INTEGER005
FGet 5, TSTRING014(INTEGER001)
Next
FClose 5
Sort TSTRING014, TINTEGER008
FCreate 7, PPEPath() + PPEName() + ".SRT", 2, 0
For INTEGER001 = 0 To INTEGER005
FPutLn 7, TSTRING014(TINTEGER008(INTEGER001))
Next
FClose 7
FCloseAll
FCreate 4, PPEPath() + PPEName() + ".DAT", 2, 0
While (INTEGER005 <> 0) Do
STRING035 = ReadLine(PPEPath() + PPEName() + ".SRT", INTEGER005)
FPutLn 4, STRING035
Dec INTEGER005
EndWhile
FClose 4
Return
:LABEL018
INTEGER007 = 15
Cls
DispFile PPEPath() + PPEName() + "1" + ".hlp", 2 + 1 + 4
Newlines 1
Print " @X0APress your @X0E<@X84ENTER@X0E>@X0A key to continue@X0F"
InputStr "_", STRING019, 15, 1, Mask_Ascii(), 0
Cls
DispFile PPEPath() + PPEName() + "2" + ".hlp", 2 + 1 + 4
Newlines 1
Print " @X0APress your @X0E<@X84ENTER@X0E>@X0A key to continue@X0F"
InputStr "_", STRING019, 15, 1, Mask_Ascii(), 0
Goto LABEL009
:LABEL019
FCloseAll
Backup 80
ClrEol
Print " @X0A Suggestion Number to @X8ADelete@X0A # @X0E(@X0C1@X0E-@X0C", INTEGER005, "@X0E) @X0A/ @X0E(@X0CQ@X0E)@X0Cuit@X0F "
InputStr "_", STRING020, 14, 3, "0123456789Q", 0 + 8
If (STRING020 == "Q") Then
INTEGER007 = 15
BOOLEAN002 = 0
Goto LABEL008
Endif
STRING033 = ReadLine(PPEPath() + PPEName() + ".dat", STRING020)
STRING033 = Mid(STRING033, 13, 6)
FOpen 3, PPEPath() + PPEName() + ".$$$", 2, 0
FOpen 4, PPEPath() + PPEName() + ".Nam", 0, 0
:LABEL020
If (Ferr(4)) Goto LABEL022
FGet 4, STRING034
If (Mid(STRING034, 13, 6) == STRING033) Goto LABEL021
If (Mid(STRING034, 13, 6) <> STRING033) FPutLn 3, STRING034
:LABEL021
Goto LABEL020
:LABEL022
FClose 4
FClose 3
Rename PPEPath() + PPEName() + ".Nam", PPEPath() + PPEName() + ".Man"
Rename PPEPath() + PPEName() + ".$$$", PPEPath() + PPEName() + ".Nam"
FOpen 5, PPEPath() + PPEName() + ".%%%", 2, 0
FOpen 6, PPEPath() + PPEName() + ".DAT", 0, 0
:LABEL023
If (Ferr(6)) Goto LABEL025
FGet 6, STRING034
If (Mid(STRING034, 13, 6) == STRING033) Goto LABEL024
FPutLn 5, STRING034
:LABEL024
Goto LABEL023
:LABEL025
FClose 6
FClose 5
FCloseAll
Copy PPEPath() + PPEName() + ".Dat", PPEPath() + PPEName() + ".Tad"
Delete PPEPath() + PPEName() + ".Dat"
Copy PPEPath() + PPEName() + ".%%%", PPEPath() + PPEName() + ".Dat"
Delete PPEPath() + PPEName() + ".%%%"
INTEGER006 = INTEGER006 - 1
FOpen 2, PPEPath() + PPEName() + ".Cfg", 2, 0
FPutLn 2, INTEGER006
FClose 2
If (Exist(PPEPath() + String(STRING033) + ".Not")) Delete PPEPath() + String(STRING033) + ".Not"
BOOLEAN002 = 0
INTEGER007 = 15
Goto LABEL008
:LABEL026
Cls
Newlines 4
PrintLn "@POS:25@@X10┌─────────────────────────────@X19┐@X0F"
PrintLn "@POS:25@@X10│ @X1ASuggestion Box! v3.02@X1C @X19│@X0F"
PrintLn "@POS:25@@X10│@X1E (c)96 Practical Computer @X19│@X0F"
PrintLn "@POS:25@@X10│@X16▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀@X19│@X0F"
PrintLn "@POS:25@@X10│ @X19│@X0F"
PrintLn "@POS:25@@X10│ @X1EProgrammed by: Bob Watson @X19│@X0F"
PrintLn "@POS:25@@X10│ @X19│@X0F"
PrintLn "@POS:25@@X10│@X1C @X1APractical Computer Services@X1C @X19│@X0F"
PrintLn "@POS:25@@X10│ @X1A483 Klockner Road @X19│@X0F"
PrintLn "@POS:25@@X10│ @X1AHamilton, NJ 08619 @X19│@X0F"
PrintLn "@POS:25@@X10└@X19─────────────────────────────┘@X0F"
Delay (5 * 182) / 10
Goto LABEL009
:LABEL027
Backup 80
ClrEol
Print " @X0BView which note file@X0A @X0E(@X0CQ@X0E)@X0Cuit@X0F "
InputStr "_", STRING039, 14, 3, "0123456789Q", 0 + 8
If (STRING039 == "Q") Then
INTEGER007 = 15
BOOLEAN002 = 0
Goto LABEL008
Endif
STRING045 = ReadLine(PPEPath() + PPEName() + ".DAT", STRING039)
STRING022 = Mid(STRING045, 13, 6)
STRING040 = Mid(STRING045, 20, 1)
If (STRING040 == "Y") Then
Cls
DispFile PPEPath() + String(STRING022) + ".Not", 0
Newlines 1
Print " @X0APress your @X0E<@X84ENTER@X0E>@X0A key to continue@X0F"
InputStr "_", STRING019, 15, 1, Mask_Ascii(), 0
BOOLEAN002 = 0
INTEGER007 = 15
Goto LABEL008
Else
Backup 80
ClrEol
PrintLn "@X0A @X0E████ @X0BSorry but you chose a Suggestion with no note @X0A(@X0Blook for the @X8D@X0A) @X0E████@X0F"
Delay (4 * 182) / 10
BOOLEAN002 = 0
Endif
INTEGER007 = 15
Goto LABEL008
:LABEL028
Backup 80
ClrEol
Print " @X0AAdd a note to which Suggestion@X0A # @X0E(@X0C1@X0E-@X0C", INTEGER005, "@X0E) @X0A/ @X0E(@X0CQ@X0E)@X0Cuit@X0F "
InputStr "_", STRING039, 14, 3, "0123456789Q", 0 + 8
If (STRING039 == "Q") Then
INTEGER007 = 15
BOOLEAN002 = 0
Goto LABEL008
Endif
Newline
STRING045 = ReadLine(PPEPath() + PPEName() + ".DAT", STRING039)
STRING022 = Mid(STRING045, 13, 6)
STRING040 = Mid(STRING045, 20, 1)
STRING037 = Mid(STRING045, 22, 74)
If (STRING040 == "Y") Then
Backup 80
ClrEol
InputStr "@X0BThere is already a note for this Suggestion @X0A(@X0ED@X0A)@X0Belete or @X0A(@X0ER@X0A)@X0Beview it _", STRING041, 14, 1, "DR", 0 + 8
For INTEGER002 = 1 To INTEGER005
TSTRING007(INTEGER002) = ""
Next
Select Case (Upper(STRING041))
Case "D"
Delete PPEPath() + String(STRING022) + ".Not"
FOpen 7, PPEPath() + PPEName() + ".DAT", 0, 0
For INTEGER002 = 1 To INTEGER005
FGet 7, TSTRING007(INTEGER002)
Next
FClose 7
FCloseAll
STRING057 = Left(TSTRING007(STRING039), 5)
STRING058 = Mid(TSTRING007(STRING039), 7, 5)
STRING059 = Mid(TSTRING007(STRING039), 13, 6)
STRING060 = "N"
STRING061 = Mid(TSTRING007(STRING039), 22, 74)
TSTRING007(STRING039) = STRING057 + STRING010 + STRING058 + STRING010 + STRING059 + STRING010 + STRING060 + STRING010 + STRING061
FOpen 6, PPEPath() + PPEName() + ".DAT", 2, 0
For INTEGER002 = 1 To INTEGER005
FPutLn 6, TSTRING007(INTEGER002)
Next
FClose 6
Case "R"
Cls
DispFile PPEPath() + String(STRING022) + ".Not", 0
Newlines 1
Print " @X0APress your @X0E<@X84ENTER@X0E>@X0A key to continue@X0F"
InputStr "_", STRING019, 15, 1, Mask_Ascii(), 0
End Select
BOOLEAN002 = 0
Goto LABEL008
Else
INTEGER009 = 2
Redim TSTRING036, 21
Cls
PrintLn "@X0AType an @X0CS@X0A on a blank line to @X0CSave@X0A, or a @X0CQ@X0A to @X0Cquit@X0A (no save)"
Newline
PrintLn "@X0E┌─────────@X0B1@X0E─────────@X0B2@X0E─────────@X0B3@X0E─────────@X0B4@X0E─────────@X0B5@X0E─────────@X0B6@X0E─────────@X0B7@X0E───────┐"
TSTRING036(0) = "Date: " + String(Date())
TSTRING036(1) = " RE: " + Left(STRING037, 70)
TSTRING036(2) = "-------------------------------------------------------------------------------"
For INTEGER003 = 3 To 21
InputStr "_", TSTRING036(INTEGER003), 11, 78, Mask_Ascii(), 0 + 256
If (Upper(TSTRING036(INTEGER003)) == "S") Break
If (Upper(TSTRING036(INTEGER003)) == "Q") Then
BOOLEAN002 = 0
Goto LABEL008
Endif
Inc INTEGER009
Next
INTEGER009 = INTEGER009
FOpen 3, PPEPath() + String(STRING022) + ".Not", 2, 0
For INTEGER010 = 0 To INTEGER009
FPutLn 3, TSTRING036(INTEGER010)
Next
FClose 3
Endif
FOpen 2, PPEPath() + PPEName() + ".DAT", 0, 0
For INTEGER002 = 1 To INTEGER005
FGet 2, TSTRING007(INTEGER002)
Next
FClose 2
FCloseAll
STRING045 = ReadLine(PPEPath() + PPEName() + ".DAT", STRING039)
STRING030 = Left(STRING045, 5)
STRING031 = Mid(STRING045, 7, 5)
STRING032 = Mid(STRING045, 13, 6)
STRING046 = "Y"
STRING047 = Mid(STRING045, 22, 74)
TSTRING007(STRING039) = STRING030 + STRING010 + STRING031 + STRING010 + STRING032 + STRING010 + STRING046 + STRING010 + STRING047
FOpen 6, PPEPath() + PPEName() + ".DAT", 2, 0
For INTEGER011 = 1 To INTEGER005
FPutLn 6, TSTRING007(INTEGER011)
Next
FClose 6
BOOLEAN002 = 0
INTEGER007 = 15
Goto LABEL008
Endif
End Select
If (Exist(PPEPath() + "Waiting.lst")) Then
FOpen 1, PPEPath() + "Waiting.Lst", 0, 0
:LABEL029
If (Ferr(1)) Goto LABEL030
FGet 1, INTEGER012
Broadcast INTEGER012, INTEGER012, "Suggestion door now open!"
Goto LABEL029
:LABEL030
FClose 1
Delete PPEPath() + "waiting.lst"
Endif
Delete PPEPath() + "door.lck"
End
;------------------------------------------------------------------------------
Procedure PROC001()
FOpen 1, PPEPath() + "UNIVERSL.KEY", 0, 0
FDefIn 1
For INTEGER016 = 1 To 3
FDGet TSTRING024(INTEGER016)
Next
FClose 1
STRING023 = TSTRING024(1) + TSTRING024(2)
STRING023 = Strip(STRING023, " ")
For INTEGER017 = 1 To Len(STRING023)
TINTEGER018(INTEGER017) = Asc(Mid(STRING023, INTEGER017, 1))
Next
INTEGER014 = 0
For INTEGER017 = 1 To 99
INTEGER014 = INTEGER014 + TINTEGER018(INTEGER017)
Next
INTEGER015 = INTEGER014 * 659
INTEGER013 = INTEGER015
BOOLEAN003 = 0
If (INTEGER015 <> TSTRING024(3)) Then
BOOLEAN003 = 0
Else
BOOLEAN003 = 1
Endif
EndProc
;------------------------------------------------------------------------------
Procedure PROC002()
FOpen 1, PPEPath() + "UNI.KEY", 0, 0
FDefIn 1
For INTEGER016 = 1 To 3
FDGet TSTRING024(INTEGER016)
Next
FClose 1
STRING023 = TSTRING024(1) + TSTRING024(2)
STRING023 = Strip(STRING023, " ")
For INTEGER017 = 1 To Len(STRING023)
TINTEGER018(INTEGER017) = Asc(Mid(STRING023, INTEGER017, 1))
Next
INTEGER014 = 0
For INTEGER017 = 1 To 99
INTEGER014 = INTEGER014 + TINTEGER018(INTEGER017)
Next
INTEGER015 = INTEGER014 * 659
INTEGER013 = INTEGER015
BOOLEAN003 = 0
If (INTEGER015 <> TSTRING024(3)) Then
BOOLEAN003 = 0
Else
BOOLEAN003 = 1
Endif
EndProc
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 2 End
; 12 Cls
; 13 ClrEol
; 162 Goto
; 200 Let
; 8 Print
; 43 PrintLn
; 102 If
; 4 DispFile
; 5 FCreate
; 25 FOpen
; 4 FAppend
; 35 FClose
; 15 FGet
; 20 FPutLn
; 2 GetUser
; 6 Delete
; 1 Log
; 14 InputStr
; 6 Gosub
; 4 Return
; 10 Delay
; 1 Inc
; 1 Dec
; 3 Newline
; 9 Newlines
; 1 Tokenize
; 3 GetToken
; 1 Broadcast
; 1 RdUNet
; 1 WrUNet
; 13 Backup
; 2 Rename
; 2 FDefIn
; 2 FDGet
; 5 Redim
; 2 Copy
; 1 Sort
; 10 FCloseAll
; 2 EndProc
;
;
; ■ Functions used :
;
; 12 *
; 10 /
; 230 +
; 5 -
; 56 ==
; 4 <>
; 29 <
; 23 <=
; 3 >
; 58 >=
; 67 !
; 63 &&
; 24 ||
; 7 Len(
; 9 Upper()
; 35 Mid()
; 11 Left()
; 2 Right()
; 5 Ferr()
; 4 Asc()
; 2 LTrim()
; 1 Random()
; 1 Date()
; 5 U_Name()
; 7 Strip()
; 7 String()
; 6 Mask_Ascii()
; 71 PPEPath()
; 3 PcbNode()
; 11 ReadLine()
; 6 SysopSec()
; 1 UN_Stat()
; 1 UN_Name()
; 7 CurSec()
; 8 Exist()
; 2 Abs()
; 52 PPEName()
; 1 Mixed()
;
;------------------------------------------------------------------------------
;
; Analysis flags : s
;
; s - Sysop level access ■ 5
; Program is reading the sysop access level, this may be normal
; but still it is very suspect. It is the best way to give a user
; all priviledges. Check!
; ■ Search for : SYSOPSEC()
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 23 For/Next
; 1 While/EndWhile
; 29 If/Then or If/Then/Else
; 2 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------